﻿<demo:DemoViewBase x:Name="_root"
	x:Class="StatusBarDemo.StatusBarDemoView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:local="clr-namespace:StatusBarDemo"
	xmlns:demo="clr-namespace:DemoSupport;assembly=DemoSupport"
	xmlns:sys="clr-namespace:System;assembly=mscorlib">
	<demo:DemoViewBase.Resources>
		<DrawingImage x:Key="FirstImage">
			<DrawingImage.Drawing>
				<DrawingGroup>
					<DrawingGroup.Children>
						<GeometryDrawing Brush="#ffcbcbcb" Geometry="F1 M 4.098145,1.562500 C 2.698730,1.562500 1.562500,2.698242 1.562500,4.097656 L 1.562500,36.305664 C 1.562500,37.704590 2.698730,38.840820 4.098145,38.840820 L 17.015625,38.840820 L 17.015625,19.996094 C 17.015625,18.596680 18.151855,17.460449 19.550781,17.460449 L 36.991211,17.460449 L 36.991211,4.097656 C 36.991211,2.698242 35.889160,1.562500 34.489746,1.562500 L 4.098145,1.562500 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff4b4b4b" StartLineCap="Round" EndLineCap="Round" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ffb2b2b2" Geometry="F1 M 36.344727,32.727539 C 34.945313,32.727539 33.809082,33.863770 33.809082,35.262695 L 33.809082,54.107910 L 33.809082,54.484863 L 51.215332,54.484863 C 52.614258,54.484863 53.716309,53.348633 53.716309,51.949219 L 53.716309,32.727539 L 36.344727,32.727539 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff4b4b4b" StartLineCap="Round" EndLineCap="Round" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ff7e7e7e" Geometry="F1 M 7.611328,19.832520 C 16.260742,38.806152 30.909668,34.341797 31.049316,34.341797 L 31.049316,28.063477 L 39.489746,38.178223 L 30.979492,46.688477 L 30.979492,40.340820 C 30.979492,40.340820 10.680664,45.083984 7.611328,19.832520 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff323232" StartLineCap="Round" EndLineCap="Round" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
					</DrawingGroup.Children>
				</DrawingGroup>
			</DrawingImage.Drawing>
		</DrawingImage>

		<DrawingImage x:Key="SecondImage">
			<DrawingImage.Drawing>
				<DrawingGroup>
					<DrawingGroup.Children>
						<GeometryDrawing Brush="#ffcbcbcb" Geometry="F1 M 4.037109,1.562500 L 33.819824,1.562500 C 35.186035,1.562500 36.293945,2.670410 36.293945,4.037109 L 36.293945,35.601074 C 36.293945,36.967285 35.186035,38.075195 33.819824,38.075195 L 4.037109,38.075195 C 2.670410,38.075195 1.562500,36.967285 1.562500,35.601074 L 1.562500,4.037109 C 1.562500,2.670410 2.670410,1.562500 4.037109,1.562500 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff4b4b4b" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ffb2b2b2" Geometry="F1 M 19.176270,17.146973 L 48.958984,17.146973 C 50.325684,17.146973 51.433594,18.255371 51.433594,19.621582 L 51.433594,51.185547 C 51.433594,52.552246 50.325684,53.660156 48.958984,53.660156 L 19.176270,53.660156 C 17.809570,53.660156 16.701660,52.552246 16.701660,51.185547 L 16.701660,19.621582 C 16.701660,18.255371 17.809570,17.146973 19.176270,17.146973 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff4b4b4b" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ff7e7e7e" Geometry="F1 M 7.494629,19.461426 C 15.969238,38.050293 30.320801,33.676270 30.457520,33.676270 L 30.457520,27.525391 L 38.727051,36.985352 L 30.389160,45.772949 L 30.389160,39.553711 C 30.389160,39.553711 10.501953,44.200684 7.494629,19.461426 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff323232" StartLineCap="Round" EndLineCap="Round" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
					</DrawingGroup.Children>
				</DrawingGroup>
			</DrawingImage.Drawing>
		</DrawingImage>

		<DrawingImage x:Key="ThirdImage">
			<DrawingImage.Drawing>
				<DrawingGroup>
					<DrawingGroup.Children>
						<GeometryDrawing Brush="#ffb2b2b2" Geometry="F1 M 4.005859,7.713867 L 34.249512,7.713867 C 35.637695,7.713867 36.762695,8.909180 36.762695,10.384277 L 36.762695,44.451660 C 36.762695,45.926758 35.637695,47.122559 34.249512,47.122559 L 4.005859,47.122559 C 2.617676,47.122559 1.492676,45.926758 1.492676,44.451660 L 1.492676,10.384277 C 1.492676,8.909180 2.617676,7.713867 4.005859,7.713867 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="2.984958" Brush="#ff4b4b4b" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ffcbcbcb" Geometry="F1 M 4.456055,17.377930 L 26.019531,11.200195 L 33.826172,38.452148 L 12.263184,44.629395 L 4.456055,17.377930 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="1.155799" Brush="#ff4b4b4b" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ff7e7e7e" Geometry="F1 M 20.561035,28.525879 C 29.035645,47.114746 43.387207,42.740723 43.523926,42.740723 L 43.523926,36.589844 L 51.793457,46.499512 L 43.455566,54.837402 L 43.455566,48.618164 C 43.455566,48.618164 23.568359,53.265625 20.561035,28.525879 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.125000" Brush="#ff323232" StartLineCap="Round" EndLineCap="Round" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
						<GeometryDrawing Brush="#ff7e7e7e" Geometry="F1 M 10.539551,1.809570 L 27.403320,1.809570 C 29.310547,1.809570 30.856934,3.355957 30.856934,5.263184 L 30.856934,7.211914 C 30.856934,9.119141 29.310547,10.665527 27.403320,10.665527 L 10.539551,10.665527 C 8.632324,10.665527 7.085938,9.119141 7.085938,7.211914 L 7.085938,5.263184 C 7.085938,3.355957 8.632324,1.809570 10.539551,1.809570 Z">
							<GeometryDrawing.Pen>
								<Pen DashCap="Flat" Thickness="3.619420" Brush="#ff4b4b4b" LineJoin="Round"/>
							</GeometryDrawing.Pen>
						</GeometryDrawing>
					</DrawingGroup.Children>
				</DrawingGroup>
			</DrawingImage.Drawing>
		</DrawingImage>
	</demo:DemoViewBase.Resources>

	<Grid>
		<Grid.RowDefinitions>
			<RowDefinition Height="*"/>
		</Grid.RowDefinitions>
		<Grid.ColumnDefinitions>
			<ColumnDefinition Width="1*"/>
			<ColumnDefinition Width="Auto"/>
			<ColumnDefinition Width="2*"/>
		</Grid.ColumnDefinitions>

		<FlowDocumentScrollViewer DataContext="{Binding ElementName=_root}" VerticalScrollBarVisibility="Auto">
			<FlowDocument>
				<Paragraph>
					<Span Style="{DynamicResource Heading1}">Status Bar Service</Span>
				</Paragraph>
				<Paragraph>
					The shell provides a status bar service. This service is an implementation of the
					<Span Style="{DynamicResource Code}">IStatusBarService</Span> interface, and it allows module developers to easily add
					information to the application status bar.
				</Paragraph>
				<Paragraph>
					Note that the status bar is not an extension point. Modules are not able to add or remove panels on the status bar. This
					was a conscious design decision. The status bar is treated as a simple source of non-critical information. Allowing
					modules to extend the status bar could lead to a status area that is way too busy to be of use to the user.
				</Paragraph>
				<Paragraph>
					When you need to display information in the status bar, you start an operation via the status bar service. For each area
					on the status bar, there is a corresponding method in the status bar service. The shell ships with the following status
					bar areas:
				</Paragraph>
				<List>
					<ListItem>
						<Paragraph>
							Primary message -
							<Span Style="{StaticResource Code}">IStatusBarService.BeginMessageOperation()</Span>
						</Paragraph>
					</ListItem>
					<ListItem>
						<Paragraph>
							Secondary message -
							<Span Style="{StaticResource Code}">IStatusBarService.BeginSecondaryMessageOperation()</Span>
						</Paragraph>
					</ListItem>
					<ListItem>
						<Paragraph>
							Ternary message -
							<Span Style="{StaticResource Code}">IStatusBarService.BeginTernaryMessageOperation()</Span>
						</Paragraph>
					</ListItem>
					<ListItem>
						<Paragraph>
							Progress information -
							<Span Style="{StaticResource Code}">IStatusBarService.BeginProgressOperation()</Span>
						</Paragraph>
					</ListItem>
				</List>
				<Paragraph>
					Each of the above methods returns an object that can be used to manipulate that area of the status bar. Once finished,
					you dispose of this object and the status bar service will ensure your information is no longer shown.
				</Paragraph>
				<Paragraph>
					The status bar service supports prioritization. Since there are potentially many screens vying for the same screen real
					estate, the status bar service must intelligently decide which messages to show. It does this via prioritizing messages
					according to the
					<Span Style="{StaticResource Code}">StatusPriority</Span> associated with the operation and the time at which the
					operation was started (newer operations take precedence over older operations of the same priority).
				</Paragraph>
			</FlowDocument>
		</FlowDocumentScrollViewer>

		<GridSplitter Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Stretch"/>

		<demo:DemoSet Grid.Column="2">
			<demo:DemoSet.CommandBindings>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1BeginPrimaryMessageOperation}" CanExecute="Example1BeginPrimaryMessageOperation_CanExecute" Executed="Example1BeginPrimaryMessageOperation_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1ChangePrimaryMessage}" CanExecute="Example1ChangePrimaryMessage_CanExecute" Executed="Example1ChangePrimaryMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1EndPrimaryMessageOperation}" CanExecute="Example1EndPrimaryMessageOperation_CanExecute" Executed="Example1EndPrimaryMessageOperation_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1BeginSecondaryMessageOperation}" CanExecute="Example1BeginSecondaryMessageOperation_CanExecute" Executed="Example1BeginSecondaryMessageOperation_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1ChangeSecondaryMessage}" CanExecute="Example1ChangeSecondaryMessage_CanExecute" Executed="Example1ChangeSecondaryMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1ChangeSecondaryMessageImage}" CanExecute="Example1ChangeSecondaryMessageImage_CanExecute" Executed="Example1ChangeSecondaryMessageImage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example1EndSecondaryMessageOperation}" CanExecute="Example1EndSecondaryMessageOperation_CanExecute" Executed="Example1EndSecondaryMessageOperation_Executed"/>

				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example2BeginDeterminateProgressOperation}" CanExecute="Example2BeginDeterminateProgressOperation_CanExecute" Executed="Example2BeginDeterminateProgressOperation_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example2IncreaseProgress}" CanExecute="Example2IncreaseProgress_CanExecute" Executed="Example2IncreaseProgress_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example2EndDeterminateProgressOperation}" CanExecute="Example2EndDeterminateProgressOperation_CanExecute" Executed="Example2EndDeterminateProgressOperation_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example2BeginIndeterminateProgressOperation}" CanExecute="Example2BeginIndeterminateProgressOperation_CanExecute" Executed="Example2BeginIndeterminateProgressOperation_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example2EndIndeterminateProgressOperation}" CanExecute="Example2EndIndeterminateProgressOperation_CanExecute" Executed="Example2EndIndeterminateProgressOperation_Executed"/>

				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example3BeginLowPriorityMessage}" CanExecute="Example3BeginLowPriorityMessage_CanExecute" Executed="Example3BeginLowPriorityMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example3BeginNormalPriorityMessage}" CanExecute="Example3BeginNormalPriorityMessage_CanExecute" Executed="Example3BeginNormalPriorityMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example3BeginHighPriorityMessage}" CanExecute="Example3BeginHighPriorityMessage_CanExecute" Executed="Example3BeginHighPriorityMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example3EndHighPriorityMessage}" CanExecute="Example3EndHighPriorityMessage_CanExecute" Executed="Example3EndHighPriorityMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example3EndNormalPriorityMessage}" CanExecute="Example3EndNormalPriorityMessage_CanExecute" Executed="Example3EndNormalPriorityMessage_Executed"/>
				<CommandBinding Command="{x:Static local:StatusBarDemoView.Example3EndLowPriorityMessage}" CanExecute="Example3EndLowPriorityMessage_CanExecute" Executed="Example3EndLowPriorityMessage_Executed"/>
			</demo:DemoSet.CommandBindings>

			<demo:Demo Title="Message Operations">
				<demo:Demo.Description>
					This example demonstrates how to start and stop message operations with the status bar service.
				</demo:Demo.Description>
				<demo:Step Title="Begin primary message operation" Command="{x:Static local:StatusBarDemoView.Example1BeginPrimaryMessageOperation}">
					<demo:Step.Header>
						This step begins a new primary message operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_primaryMessageOperation = _statusBarService.BeginMessageOperation();</sys:String>
					</demo:Step.Code>
					<demo:Step.Footer>
						Notice that after executing this step, no text is visible in the primary status bar panel. This is because no text
						has been assigned to the operation yet.
					</demo:Step.Footer>
				</demo:Step>
				<demo:Step Title="Change primary message" Command="{x:Static local:StatusBarDemoView.Example1ChangePrimaryMessage}">
					<demo:Step.Header>
						This step cycles through a set of fixed messages so you can see the primary message changing.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_primaryMessageOperation.Text = _messages[currentIndex];</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End primary message" Command="{x:Static local:StatusBarDemoView.Example1EndPrimaryMessageOperation}">
					<demo:Step.Header>
						This step ends the primary message operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_primaryMessageOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="Begin secondary message operation" Command="{x:Static local:StatusBarDemoView.Example1BeginSecondaryMessageOperation}">
					<demo:Step.Header>
						This step begins a new secondary message operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_secondaryMessageOperation = _statusBarService.BeginSecondaryMessageOperation();</sys:String>
					</demo:Step.Code>
					<demo:Step.Footer>
						Notice that after executing this step, no text is visible in the secondary status bar panel. This is because no text
						has been assigned to the operation yet.
					</demo:Step.Footer>
				</demo:Step>
				<demo:Step Title="Change secondary message" Command="{x:Static local:StatusBarDemoView.Example1ChangeSecondaryMessage}">
					<demo:Step.Header>
						This step cycles through a set of fixed messages so you can see the secondary message changing.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_secondaryMessageOperation.Text = _messages[currentIndex];</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="Change secondary image" Command="{x:Static local:StatusBarDemoView.Example1ChangeSecondaryMessageImage}">
					<demo:Step.Header>
						This step cycles through a set of fixed images so you can see the secondary image changing.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_secondaryMessageOperation.Image = _images[currentIndex];</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End secondary message" Command="{x:Static local:StatusBarDemoView.Example1EndSecondaryMessageOperation}">
					<demo:Step.Header>
						This step ends the secondary message operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_secondaryMessageOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
			</demo:Demo>

			<demo:Demo Title="Progress Operations">
				<demo:Demo.Description>
					This example demonstrates how to start and stop progress operations with the status bar service.
				</demo:Demo.Description>
				<demo:Step Title="Begin determinate progress operation" Command="{x:Static local:StatusBarDemoView.Example2BeginDeterminateProgressOperation}">
					<demo:Step.Header>
						This step begins a new determinate progress operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_determinateProgressOperation = _statusBarService.BeginProgressOperation();
_determinateProgressOperation.Text = "Demonstrating...";
_determinateProgressOperation.Minimum = 0;
_determinateProgressOperation.Maximum = 10;
_determinateProgressOperation.Value = 0;</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="Increase progress" Command="{x:Static local:StatusBarDemoView.Example2IncreaseProgress}">
					<demo:Step.Header>
						This step increases the progress of the determinate progress operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">++_determinateProgressOperation.Value;</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End determinate progress operation" Command="{x:Static local:StatusBarDemoView.Example2EndDeterminateProgressOperation}">
					<demo:Step.Header>
						This step ends the determinate progress operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_determinateProgressOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="Begin indeterminate progress operation" Command="{x:Static local:StatusBarDemoView.Example2BeginIndeterminateProgressOperation}">
					<demo:Step.Header>
						This step begins a new indeterminate progress operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_indeterminateProgressOperation = _statusBarService.BeginProgressOperation();
_indeterminateProgressOperation.Text = "Demonstrating...";
_indeterminateProgressOperation.IsIndeterminate = true;</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End indeterminate progress operation" Command="{x:Static local:StatusBarDemoView.Example2EndIndeterminateProgressOperation}">
					<demo:Step.Header>
						This step ends the indeterminate progress operation.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_indeterminateProgressOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
			</demo:Demo>

			<demo:Demo Title="Prioritization">
				<demo:Demo.Description>
					This example demonstrates how prioritization can be used to ensure certain progress operations take precedence over
					others.
				</demo:Demo.Description>
				<demo:Step Title="Begin low priority operation" Command="{x:Static local:StatusBarDemoView.Example3BeginLowPriorityMessage}">
					<demo:Step.Header>
						This step begins a new low priority message.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_lowPriorityOperation = _statusBarService.BeginMessageOperation(StatusPriority.Low);
_lowPriorityOperation.Text = "Low priority message";</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End low priority operation" Command="{x:Static local:StatusBarDemoView.Example3EndLowPriorityMessage}">
					<demo:Step.Header>
						This step ends the low priority message.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_lowPriorityOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="Begin normal priority operation" Command="{x:Static local:StatusBarDemoView.Example3BeginNormalPriorityMessage}">
					<demo:Step.Header>
						This step begins a new normal priority message.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_normalPriorityOperation = _statusBarService.BeginMessageOperation();
_normalPriorityOperation.Text = "Normal priority message";</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End normal priority operation" Command="{x:Static local:StatusBarDemoView.Example3EndNormalPriorityMessage}">
					<demo:Step.Header>
						This step ends the normal priority message.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_normalPriorityOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="Begin high priority operation" Command="{x:Static local:StatusBarDemoView.Example3BeginHighPriorityMessage}">
					<demo:Step.Header>
						This step begins a new high priority message.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_highPriorityOperation = _statusBarService.BeginMessageOperation(StatusPriority.High);
_highPriorityOperation.Text = "High priority message";</sys:String>
					</demo:Step.Code>
				</demo:Step>
				<demo:Step Title="End high priority operation" Command="{x:Static local:StatusBarDemoView.Example3EndHighPriorityMessage}">
					<demo:Step.Header>
						This step ends the high priority message.
					</demo:Step.Header>
					<demo:Step.Code>
						<sys:String xml:space="preserve">_highPriorityOperation.Dispose();</sys:String>
					</demo:Step.Code>
				</demo:Step>
			</demo:Demo>
		</demo:DemoSet>
	</Grid>
</demo:DemoViewBase>
